1. Technical Field
The present application relates generally to an improved data processing apparatus and method. More specifically, the present application is directed to an apparatus and method for sharing data in internal and memory representations with dynamic data driven conversion.
2. Description of Related Art
High-performance processors support multimedia-processing using single instruction multiple data (SIMD) techniques for exploiting instruction-level parallelism in programs. That is, SIMD techniques are used for executing more than one operation at a time. These processors contain multiple functional units, some of which are directed to the execution of scalar data and some of which are grouped for the processing of structured SIMD vector data. SIMD data streams are used to represent multimedia datatypes, such as color information, using, for example, the RGB format by encoding the red, green, and blue components in the structured data type, or coordinate information, by encoding position as the quadruple (x, y, z, w). Implementations based on the addition of a full-function SIMD processing block to an existing scalar block lead to large processor cores where multiple units are unnecessarily replicated, each replica dedicated to the processing of either scalar data or one element of the structured multimedia data type.
Processors designed for processing multimedia data have been implemented by augmenting an existing scalar processor implementation, for instance by adding a SIMD unit, the SIMD unit itself consisting of multiple functional units (i.e., fixed point units and floating point units) mirroring resources available for the processing of scalar data types, and replicating each functional unit type for the number of structured elements to be supported by the SIMD architecture. The only units shared between the scalar and SIMD processing units are the issue logic, which issues instructions to either the scalar or SIMD processing blocks, and the load/store unit, which governs access to the memory subsystem. All other units, including the register files, are maintained separate.